package com.zhangshanfeng.file;

import java.io.File;

/*
### File类练习二【应用】

+ 案例需求

  删除一个多级文件夹

+ 实现步骤

  + 定义一个方法,接收一个File对象
  + 遍历这个File对象,获取它下边的每个文件和文件夹对象
  + 判断当前遍历到的File对象是文件还是文件夹
  + 如果是文件,直接删除
  + 如果是文件夹,递归调用自己,将当前遍历到的File对象当做参数传递
  + 参数传递过来的文件夹File对象已经处理完成,最后直接删除这个空文件夹
 */
public class FileDemo05 {
    public static void main(String[] args) {

        File file = new File("E:\\谁谁谁");
        deleteDir(file);
        //练习二：删除一个多级文件夹
        //delete方法
        //只能删除文件和空文件夹.
        //如果现在要删除一个有内容的文件夹?
        //先删掉这个文件夹里面所有的内容.
        //最后再删除这个文件夹


        //1.定义一个方法,接收一个File对象

        //先删掉这个文件夹里面所有的内容.
        //递归 方法在方法体中自己调用自己.
        //注意: 可以解决所有文件夹和递归相结合的题目
        //2.遍历这个File对象,获取它下边的每个文件和文件夹对象

        //3.判断当前遍历到的File对象是文件还是文件夹

        //4.如果是文件,直接删除

        //5.如果是文件夹,递归调用自己,将当前遍历到的File对象当做参数传递

        //参数一定要是src文件夹里面的文件夹File对象

        //6.参数传递过来的文件夹File对象已经处理完成,最后直接删除这个空文件夹

    }
    public static void deleteDir(File file){

        File[] files = file.listFiles();
        for (File file1 : files) {
            //是文件夹就进入，是文件就删除--递归操作
            if(file1.isDirectory()){
                //如果是文件夹,递归调用自己,将当前遍历到的File对象当做参数传递
                deleteDir(file1);
            }else {
                //是文件就删除
                file1.delete();
            }
        }
        //遍历完后删除文件夹
        file.delete();



    }




}
